共计 1297 个字符,预计需要花费 4 分钟才能阅读完成。
定义
通过工厂对象生成接口的具体实现对象, 这样我们的代码完全与接口的实现解耦
;
代码
接口
public interface Cycle {
// 骑方法
void cycle();
}
接口实现
/**
* 独轮车实现
*/
public class Unicycle implements Cycle {
// 轮子数
private int num = 1;
@Override
public void cycle() {
System.out.println("Unicycle num " + num);
}
}
/**
* 自行车实现
*/
public class Bicycle implements Cycle {
// 轮子数
private int num = 2;
@Override
public void cycle() {
System.out.println("Bicycle num " + num);
}
}
/**
* 三轮车实现
*/
public class Tricycle implements Cycle {
// 轮子数
private int num = 3;
@Override
public void cycle() {
System.out.println("Tricycle num " + num);
}
}
工厂接口
public interface CycleFactory {
// 选一种自行车
Cycle getCycle();
}
工厂接口实现
/**
* 生产独轮车工厂
*/
public class UniCycleFactory implements CycleFactory {
@Override
public Cycle getCycle() {
return new Unicycle();
}
}
/**
* 生产自行车工厂
*/
public class BicycleFactory implements CycleFactory {
@Override
public Cycle getCycle() {
return new Bicycle();
}
}
/**
* 生产三轮车工厂
*/
public class TricycleFactory implements CycleFactory {
@Override
public Cycle getCycle() {
return new Tricycle();
}
}
骑车类
/**
* @author plm
* @create 2021/3/14 22:46
*/
public class Cycles {
// 开始骑车
public static void cycleCycle(CycleFactory cycleFactory) {
Cycle cycle = cycleFactory.getCycle();
cycle.cycle();
}
public static void main(String[] args) {
cycleCycle(new UniCycleFactory()); // 骑来自独轮车工厂的车
cycleCycle(new BicycleFactory()); // 骑来自自行车工厂的车
cycleCycle(new TricycleFactory()); // 骑来自三轮车工厂的车
}
}
/* 输出
Unicycle num 1
Bicycle num 2
Tricycle num 3
*/
简单的工厂方法设计模式代码,可作为初步了解设计模式;
正文完